<?php
// +----------------------------------------------------------------------------
// | Tke团队版权所属 [三十年河东三十年河西,莫欺少年穷.!]
// +----------------------------------------------------------------------------
// | Copyright (c) 2014 http://www.itdaodan.com All rights reserved.
// +----------------------------------------------------------------------------
// | Author: PHP@妖孽 <dino_ma@163.com>
// +----------------------------------------------------------------------------
namespace Admin\Service;
/**
 * @todo 属性模型
 * @author PHP@妖孽 <dino_ma@163.com>
 * @since 2015-7-27
 */
class AttributeService{

    /* 操作的表名 */
    public $table_name = null;

    /**
     * 检查同一张表是否有相同的字段
     */
    protected function checkName(){
       //留着接口以后去做
    }

    /**
     * 检查当前表是否存在
     */
    protected function checkTableExist(){
    	
    }

    /**
     * 新建表字段
     * @param array $config_info 配置信息
     * @return boolean true 成功 ， false 失败
     */
    public function addField($config_info){
    	if(empty($config_info)){
    		$this->error = '配置信息不存在~';
    		return false;
    	}
    	$obj =M();
    	$drop_sql = <<<sql
            DROP TABLE IF EXISTS `{$this->table_name}`;
sql;
    	$obj->execute($drop_sql);
		$sql = "
                CREATE TABLE  `{$this->table_name}` (
                 `activity_join_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
				";
		//插入字段 前期先这样后期有精力了再优化这块.
		foreach ($config_info as $key=>$val){
			switch ($val['type']){
				case 0://数字 int 10
					$sql .= "`{$val['name']}` int(11) NOT NULL DEFAULT '0' COMMENT '{$val['title']}',";
					break;
				case 1://字符 varcahr 255
					$sql .= "`{$val['name']}` varchar(255) NOT NULL DEFAULT '' COMMENT '{$val['title']}',";
					break;
				case 2://文本 text
					$sql .= "`{$val['name']}` text COLLATE utf8_bin NOT NULL COMMENT '{$val['title']}',";
					break;
				case 3://数组 varchar 
					$sql .= "`{$val['name']}` varchar(255) NOT NULL DEFAULT '' COMMENT '{$val['title']}',";
					break;
				case 4://枚举 varchar
					$sql .= "`{$val['name']}` varchar(255) NOT NULL DEFAULT '' COMMENT '{$val['title']}',";
					break;
			}
		}
		$sql .=" PRIMARY KEY (`activity_join_id`)
)ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8 COMMENT='@todo 活动报名附属表\r\n\r\n@author PHP@妖孽'
             ;";
		$res = $obj->execute($sql);
        return $res !== false;
    }

    /**
     * 更新表字段
     * @param array $field 需要更新的字段属性
     * @return boolean true 成功 ， false 失败
     */
    protected function updateField($field){
        //检查表是否存在
        //获取原字段名
        //获取默认值
        $sql = <<<sql
            ALTER TABLE `{$this->table_name}`
CHANGE COLUMN `{$last_field}` `{$field['name']}`  {$field['field']} {$default} COMMENT '{$field['title']}' ;
sql;
        $res = M()->execute($sql);
        return $res !== false;
    }

    /**
     * 删除一个字段
     * @param array $field 需要删除的字段属性
     * @return boolean true 成功 ， false 失败
     */
    public function deleteField($field){
        //检查表是否存在
        $sql = <<<sql
            ALTER TABLE `{$this->table_name}`
DROP COLUMN `{$field['name']}`;
sql;
        $res = M()->execute($sql);
        return $res !== false;
    }

}
